﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DO.Workflows;

namespace DO.Clustering
{
    public class DocumentClusteringComponent : WorkflowComponentBase
    {
        public DocumentClusteringComponent()
            : base()
        {
            this.ComponentName = "Cluster Doc";
            this.Description = "Cluster doc into groups based on term vector distance";
            this.ComponentIconName = "Icon.png";
            this.ComponentImageName = "Icon.png";

            this._Instruction = new DocumentClusteringInstruction(
                this.ComponentID, Guid.NewGuid(), 
                string.Empty, string.Empty, string.Empty,
                string.Empty, string.Empty,
                string.Empty, string.Empty, string.Empty,
                string.Empty, string.Empty, string.Empty,
                string.Empty, string.Empty, 
                string.Empty, string.Empty,
                string.Empty, string.Empty);
            this._Output = new DocumentClusteringOutput(
                this.ComponentID, Guid.NewGuid(), 
                string.Empty,
                new Dictionary<int, string>(),
                new Dictionary<int, List<int>>(),
                new Dictionary<int, double>(),
                new Dictionary<int, Dictionary<int, double>>(),
                new Dictionary<int, string>(),
                new Dictionary<int, Dictionary<int, int>>(), 
                new Dictionary<int, double>(),
                new Dictionary<int, string>(),
                new Dictionary<int, Dictionary<int, double>>());
        }

        #region Overrides of WorkflowComponentBase

        private DocumentClusteringInstruction _Instruction;
        public override InstructionBase Instruction
        {
            get { return _Instruction; }
            set { _Instruction = (DocumentClusteringInstruction)value; }
        }

        private DocumentClusteringOutput _Output;
        public override ResultBase Output
        {
            get { return _Output; }
            set { _Output = (DocumentClusteringOutput)value; }
        }

        #endregion
    }
}
